Electronic credentials (also known as “digital credentials” or “credentials”) are frequently used by computer systems and users to support processes and operations relating to authentication, identification, and/or authorization. Electronic credentials are the digital equivalent of paper documents and other tangible objects traditionally used for establishing a person's privileges, characteristics, identity, and so on. Electronic credentials may include such things as sign-in names, passwords, symmetric or asymmetric encryption keys, and/or other information associated with a user or process that uses the credentials.
Electronic credentials are typically maintained in one or more credential stores. Credential stores are often located in a user's computer system, or may be downloaded from a server to a user's computer system as needed. A credential store may be replicated across multiple computer systems, thus resulting in multiple copies of a credential store being stored across multiple systems.
Most credential stores are encrypted by an encryption key derived, directly or indirectly, from a password, in order to prevent unauthorized access. Unfortunately, humans are notoriously poor at remembering strong passwords, especially when required by security policies to change them frequently and never re-use them. Moreover, other access control mechanisms for keeping a credential store confidential are also subject to becoming invalid, and cryptographic tokens may be lost or locked out. As a result, some technique must be provided to recover an encrypted credential store after a password is forgotten, a cryptographic token lost or locked out, or another access control mechanism for the credential store is rendered invalid.
Existing systems often rely on a server-based copy of the credential store that is either effectively unencrypted, or that is encrypted under the same administrative key as all other stores. In both cases, a single point of failure exists, in that a single help desk employee can easily steal the contents of all the credential stores in the organization.
For example, existing server-based credential stores, such as “RSA Web Passport” and “RSA Credential Manager”, provided by RSA Security, Inc., and similar products, can be accessed from multiple remote client systems. However, since it is access to the credential store in such systems that is protected by a password or other authentication device, but not the contents of the credential store itself, the credential store does not have any protections against an attack by a disgruntled administrator or a hacker gaining access to the local hard drive on the server system.
RFC 3760 describes a “Credential Server Framework” that allows for a credential store on the server to be encrypted with a key known to the server as well as a key derived from the user's “credential password”, and distinguishes the credential password from the means of authentication to the server. However, that approach focuses on a protocol through which a client can communicate with the server, and fails to address the case in which a client has lost their means of authenticating to the server, except for inclusion of an optional server key that could also be used to decrypt the credential store.
TFS WorkstationControl from TFS Technology, Inc., encrypts centrally managed credential stores with an additional administrative key, so that an administrator can reset a user's password that is used to encrypt the credential store. This approach also provides a “File Recovery” process that encrypts the user's password-derived key with a single public recovery key, and allows administrators to decrypt files with the corresponding private key. A significant shortcoming of this approach is that it gives the administrator knowledge of the end user's new password, and allows any entity with the ability to change the credential store password unfettered access to that store.
Certification Authorities (CAs), as defined and specified by the PKIX working group of the IETF (Internet Engineering Task Force), are also in common use throughout the industry. CAs allow authorized individuals (RAs) to generate digital signatures using an encryption key to which they do not have direct access, in order to sign a set of information describing an identity to create a certificate, or to sign code for access control purposes. CAs provide entities who are not trusted with the actual encryption keys the ability to use those keys, based on using RSA (Rivest-Shamir-Adleman) private keys to generate certificates containing public keys and signatures. However, CAs also do not include support for recovering a credential store whose access control mechanism has been rendered invalid, such as when a user forgets their password.
For the above reasons and others, it would be desirable to have a new system for automating the recovery of a credential store that substantially prevents administrator users from obtaining access to credentials for an organization during the recovery process, and that allows for efficient recovery of multiple copies of a credential store.